Validation এবং Error Notification Techniques

Microsoft Technologies - এমভিভিএম (MVVM) Data Binding Techniques এবং Observable Collections |
232
232

MVVM (Model-View-ViewModel) প্যাটার্নে Validation এবং Error Notification অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলি ইউজারের ইনপুটের সঠিকতা নিশ্চিত করে এবং ভুল ইনপুটের জন্য ইউজারকে যথাযথভাবে জানান দেয়। এই প্রক্রিয়াগুলি Model এবং ViewModel এর মধ্যে কাজ করে এবং View-এ এর ফলাফল প্রদর্শিত হয়।


Validation এর ধারণা

Validation হল একটি প্রক্রিয়া যার মাধ্যমে ইউজারের ইনপুট যাচাই করা হয়, যাতে নিশ্চিত হওয়া যায় যে ইনপুটটি সঠিক এবং বৈধ। MVVM প্যাটার্নে, ইনপুট ভ্যালিডেশন সাধারণত ViewModel বা Model এ করা হয়, এবং ফলাফল View-এ Error Notification আকারে প্রদর্শিত হয়।

Validation Techniques:

  1. Data Annotations:

    • Data Annotations হল একটি সাধারণ এবং সহজ উপায়, যার মাধ্যমে আপনি Model প্রপার্টির সাথে ভ্যালিডেশন কনস্ট্রেইন্ট যুক্ত করতে পারেন। Data Annotations সাধারণত প্রপার্টির উপরে অ্যাট্রিবিউট হিসেবে ব্যবহার করা হয়, যেমন Required, StringLength, Range, RegularExpression ইত্যাদি।
    • Data Annotations ব্যবহারের মাধ্যমে আপনি সঠিক ইনপুট ফরম্যাট এবং দৈর্ঘ্য চেক করতে পারেন।

    Data Annotations উদাহরণ:

    public class Product
    {
        [Required(ErrorMessage = "Product name is required.")]
        public string Name { get; set; }
    
        [Range(0, 10000, ErrorMessage = "Price must be between 0 and 10,000.")]
        public decimal Price { get; set; }
    
        [Required(ErrorMessage = "Quantity is required.")]
        [Range(1, 100, ErrorMessage = "Quantity must be between 1 and 100.")]
        public int Quantity { get; set; }
    }
    
  2. IValidatableObject Interface:

    • IValidatableObject ইন্টারফেস Model এ কাস্টম ভ্যালিডেশন লজিক যোগ করতে সাহায্য করে। এটি একটি মেথড Validate প্রদান করে, যা প্রপার্টি ভ্যালিডেশনের সময় চেক করা হয় এবং যদি কোনো ত্রুটি থাকে, তাহলে সেই ত্রুটির বার্তা ফিরিয়ে দেয়।

    IValidatableObject উদাহরণ:

    public class Product : IValidatableObject
    {
        public string Name { get; set; }
        public decimal Price { get; set; }
        public int Quantity { get; set; }
    
        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
        {
            if (Price < 0)
            {
                yield return new ValidationResult("Price cannot be negative", new[] { "Price" });
            }
    
            if (Quantity < 1 || Quantity > 100)
            {
                yield return new ValidationResult("Quantity must be between 1 and 100", new[] { "Quantity" });
            }
        }
    }
    
  3. Custom Validation Methods:

    • আপনি ViewModel এ কাস্টম ভ্যালিডেশন মেথড তৈরি করতে পারেন, যা নির্দিষ্ট ইনপুটের জন্য লজিক পরিচালনা করে। উদাহরণস্বরূপ, আপনার প্রয়োজন হতে পারে পাসওয়ার্ড এবং কনফার্ম পাসওয়ার্ডের মিল যাচাই করা বা ইমেইল ঠিকানা বৈধ কিনা পরীক্ষা করা।

    Custom Validation উদাহরণ:

    public class LoginViewModel : INotifyPropertyChanged
    {
        private string _password;
        private string _confirmPassword;
        public string Password
        {
            get => _password;
            set
            {
                _password = value;
                OnPropertyChanged();
                ValidatePasswords();
            }
        }
        public string ConfirmPassword
        {
            get => _confirmPassword;
            set
            {
                _confirmPassword = value;
                OnPropertyChanged();
                ValidatePasswords();
            }
        }
    
        private void ValidatePasswords()
        {
            if (Password != ConfirmPassword)
            {
                // Set error message
                ErrorMessage = "Passwords do not match.";
            }
            else
            {
                ErrorMessage = null;
            }
        }
    
        public string ErrorMessage { get; set; }
    }
    

Error Notification Techniques

Error Notification হল সেই প্রক্রিয়া, যার মাধ্যমে ইউজারের ভুল ইনপুট বা ভ্যালিডেশন সমস্যা সম্পর্কে তাকে অবহিত করা হয়। MVVM প্যাটার্নে, এই ত্রুটির বার্তা সাধারণত ViewModel থেকে View-এ পাঠানো হয় এবং ইউজারকে দেখানো হয়।

Error Notification Techniques:

  1. INotifyDataErrorInfo Interface:

    • INotifyDataErrorInfo ইন্টারফেস ViewModel এ ভ্যালিডেশন ত্রুটির জন্য ব্যবহার করা হয়। এটি HasErrors এবং GetErrors মেথড প্রদান করে, যা ইউজারের ভুল ইনপুটের জন্য ত্রুটি বার্তা ফেরত দেয়।
    • INotifyDataErrorInfo এর মাধ্যমে আপনি ত্রুটির বার্তা ভ্যালিডেশন প্রয়োগের সময় UI তে পাঠাতে পারেন।

    INotifyDataErrorInfo উদাহরণ:

    public class ProductViewModel : INotifyDataErrorInfo
    {
        private readonly Dictionary<string, List<string>> _errors = new();
    
        public string Name { get; set; }
        public decimal Price { get; set; }
    
        public bool HasErrors => _errors.Any();
    
        public IEnumerable<string> GetErrors(string propertyName)
        {
            if (_errors.ContainsKey(propertyName))
                return _errors[propertyName];
            return Enumerable.Empty<string>();
        }
    
        public void Validate()
        {
            if (string.IsNullOrEmpty(Name))
            {
                _errors["Name"] = new List<string> { "Name is required." };
            }
            else
            {
                _errors.Remove("Name");
            }
    
            if (Price < 0)
            {
                _errors["Price"] = new List<string> { "Price must be non-negative." };
            }
            else
            {
                _errors.Remove("Price");
            }
    
            OnPropertyChanged(nameof(HasErrors));
        }
    }
    
  2. ErrorTemplate (UI Level):

    • ErrorTemplate ব্যবহার করে View-এ ত্রুটি বার্তা প্রদর্শন করতে পারবেন। এটি UI উপাদানগুলির সাথে ত্রুটির বার্তা যুক্ত করতে সাহায্য করে, যেমন টেক্সটবক্সের নিচে ত্রুটির বার্তা প্রদর্শন করা।

    ErrorTemplate উদাহরণ:

    <Window.Resources>
        <ControlTemplate x:Key="ErrorTemplate">
            <Border BorderBrush="Red" BorderThickness="1">
                <TextBlock Foreground="Red" Text="{Binding}" />
            </Border>
        </ControlTemplate>
    </Window.Resources>
    
    <TextBox Text="{Binding Name}" Width="200">
        <TextBox.Template>
            <ControlTemplate TargetType="TextBox">
                <StackPanel>
                    <TextBox Name="TextBox" Text="{Binding Name}" />
                    <TextBlock Text="{Binding Path=ErrorMessage}" Foreground="Red"/>
                </StackPanel>
            </ControlTemplate>
        </TextBox.Template>
    </TextBox>
    
  3. Command Execution Error Feedback:
    • Command-এর মাধ্যমে ইউজারের ভুল ইনপুট বা কার্যক্রমের ত্রুটি ফিডব্যাক প্রদান করা যায়। উদাহরণস্বরূপ, একটি Submit কমান্ডের মাধ্যমে আপনি ইউজারকে একটি ত্রুটি বার্তা প্রদান করতে পারেন যদি ইনপুট অবৈধ থাকে।

উপসংহার

Validation এবং Error Notification MVVM প্যাটার্নে অ্যাপ্লিকেশনের ইউজার ইনপুট সঠিকতা নিশ্চিত করতে এবং ইউজারকে ত্রুটির সঠিক বার্তা প্রদর্শন করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। Data Annotations, IValidatableObject, এবং INotifyDataErrorInfo ইন্টারফেসের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনে ইফেক্টিভ ভ্যালিডেশন ইমপ্লিমেন্ট করতে পারেন এবং Error Templates এবং Command এর মাধ্যমে ইউজারকে ত্রুটির বার্তা উপস্থাপন করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion